home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vbpong1a / cdxvbinp.cls < prev    next >
Text File  |  1999-08-07  |  1KB  |  48 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "CDXVBInput"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. ' A (simple) DirectInput class wrapper
  15.  
  16. Public m_lpDI As IDirectInputA
  17. Public m_lpDIDKeyboard As IDirectInputDeviceA
  18.  
  19. Private Sub Class_Terminate()
  20.       m_lpDIDKeyboard.UnAcquire
  21.       Set m_lpDIDKeyboard = Nothing
  22.       
  23.       Set m_lpDI = Nothing
  24. End Sub
  25.  
  26. Public Sub Create(hInst As Long, hWnd As Long)
  27.       Dim res As Long
  28.  
  29.       DirectInputCreateA ByVal hInst, &H500, m_lpDI, Nothing
  30.       
  31.       m_lpDI.CreateDevice GUID_SysKeyboard, m_lpDIDKeyboard, Nothing
  32.       m_lpDIDKeyboard.SetDataFormat c_dfDIKeyboard
  33.       m_lpDIDKeyboard.SetCooperativeLevel hWnd, DISCL_NONEXCLUSIVE Or DISCL_FOREGROUND
  34. End Sub
  35.  
  36. Public Sub ReAcquire()
  37.       m_lpDIDKeyboard.Acquire
  38. End Sub
  39.  
  40. Public Sub UnAcquire()
  41.       m_lpDIDKeyboard.UnAcquire
  42. End Sub
  43.  
  44. Public Sub UpdateKeyboard()
  45.       m_lpDIDKeyboard.GetDeviceState 256, Keys(0)
  46.       If Err <> 0 Then m_lpDIDKeyboard.Acquire
  47. End Sub
  48.